//@author A0097758E
/**
 * Shared Constants and other error codes by all classes
 */
package sharedUtils;

/**
 * Contains constants utilized by all packages
 * 
 * i.e. standardized error codes
 */

public class Constants {
	public static final boolean isClUiEnabled = false;
	public static final boolean isGuiEnabled = true;
	public static final boolean areRemindersEnabled = false;
	
	public static final boolean areAssertsEnabled = false;
	public static final boolean isLoggingEnabled = false;
	public static final boolean isDebugModeEnabled = false;
	
	public static final String DEFAULT_FILE_LOC = "quick-todo.txt";
	public static final String DEFAULT_LOG_FILE_LOC = "qtd.log";
	public static final String DEFAULT_HELP_FILE_LOC = "HelpPage.html";
	
	public static final String POSITIVE_INTEGER_REGEX = "^[0-9]+$";
	
	public static final String INVALID_NULL_ARG_MSG = "Invalid argument. Given argument was null.";
	
	public static final int MAX_HISTORY_SIZE = 7;
	
	public static final int HIGH_PRIORITY = 1;
	public static final int LOW_PRIORITY = 0;
	
	/*
	 * Error Codes Numbering Convention: 	ABCD
	 * 										AXBCD
	 * 
	 * A, AX	(1, 2 digits)	= A number assigned to your class
	 * B 		(1 digit)		= A number assigned to your class's function
	 * CD 		(2 digits)		= A number assigned to which part of the function failed
	 */
	
	/*
	 * Generic Error Codes
	 */
	public static final int SUCCESS_ERROR_CODE 				= 0;
	public static final int INVALID_NULL_ARG 				= -1;
	public static final int INVALID_INDEX_ARG 				= -2;
	public static final int INVALID_NOT_POSITIVE_INT_ARG 	= -3;
	public static final int NO_MODIFICATIONS_WERE_MADE 		= -4;
	public static final int IOEXCEPTION_TRIGGERED	 		= -5;
	public static final int UNABLE_TO_SAVE					= -6;
	
	
	/*
	 * TaskList Error Codes
	 */
	public static final int TASKLIST_INVALID_TASK_NO_INT_TITLE			= -1001;
	public static final int TASKLIST_FAILED_ADD_TO_AL 					= -1101;
	public static final int TASKLIST_FAILED_ADD_TO_AH 					= -1102;
	public static final int TASKLIST_FAILED_ADD_DUPLICATE 				= -1103;
	public static final int TASKLIST_FAILED_UPDATE_TO_AL 				= -1201;
	public static final int TASKLIST_FAILED_UPDATE_TO_AH 				= -1202;
	public static final int TASKLIST_FAILED_UPDATE_INVALID_TASK_ID		= -1202;
	public static final int TASKLIST_FAILED_DELETE_TO_AL 				= -1301;
	public static final int TASKLIST_FAILED_DELETE_TO_AH 				= -1302;
	public static final int TASKLIST_FAILED_DELETE_NO_SUCH_KEYWORD		= -1303;
	
	/*
	 * TaskHistory Error Codes
	 */
	public static final int TASKHISTORY_FAILED_UPDATE_TO_AL 	= -2201;
	public static final int TASKHISTORY_FAILED_DELETE_CLONE 	= -2301;
	
	/*
	 * ActionHistory Error Codes
	 */
	public static final int ACTIONHISTORY_FAILED_UPDATE_TO_AL = -3201;
	
	/*
	 * FileHandler Error Codes
	 */
	public static final int FILEHANDLER_FAILED_WRITE_FILE_DOES_NOT_EXIST 	= -4101;
	public static final int FILEHANDLER_FAILED_WRITE_ENCODE_TASK 			= -4102;
	
	/*
	 * Unit Test Constants
	 */
	public static final String SAMPLE_FILE_LOCATION_PREPEND = 
			"D:\\Eclipse Dump\\nus-cs2103t-quick-todo\\Sample_Text_Files\\quick-todo.txt-Sample";
	public static final String SAMPLE_FILE_LOCATION_READ_TEST_EXTENSION = ".txt";
	public static final String SAMPLE_FILE_LOCATION_WRITE_TEST_EXTENSION = "-test.txt";
	
	/*
	 * Command codes
	 */
	public static final int INVALID_CODE = 0;
	public static final int ADD_CODE = 1;
	public static final int DELETE_CODE = 2;
	public static final int SEARCH_CODE = 3;
	public static final int EDIT_CODE = 4;
	public static final int UNDO_CODE = 5;
	public static final int REDO_CODE = 6;
	public static final int DISPLAY_CODE = 7;
	public static final int ADD_INVALID_CODE = -1;
	public static final int DELETE_INVALID_CODE = -2;
	public static final int SEARCH_INVALID_CODE = -3;
	public static final int EDIT_INVALID_CODE = -4;
	public static final int UNDO_INVALID_CODE = -5;
	public static final int REDO_INVALID_CODE = -6;
	
}

